package main

func SelectSort(nums []int) {
	// 每次排序找到一个最小的元素,交换到左边末尾位置
	// 循环不变量: nums[0:i]为有序, nums[i:]为无序
	for i := 0; i < len(nums); i++ {
		// 找到最小值位置
		currentMinIndex := i
		for j := i + 1; j < len(nums); j++ {
			if nums[j] < nums[currentMinIndex] {
				currentMinIndex = j
			}
		}
		// 交换
		nums[i], nums[currentMinIndex] = nums[currentMinIndex], nums[i]
	}
}
